#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<unistd.h>
#include<string.h>
#include<errno.h>
using namespace std;
const int N=5;
void runchild()
{
    int cnt=5;
    while(cnt--)
    {
        printf("I am a child:%d,ppid:%d\n",getpid(),getppid());
        sleep(1);
    }
}
void test1()
{

    for(int i=0;i<N;i++)
    {
        pid_t id=fork();
        if(id==0)
        {
            runchild();
            exit(0);//退出程序
        }
        //父进程会重新运行到这，并重新创造新的进程
    }
    sleep(1000);
}

//也可以根据自己的需求自行设计退出码
const char *errorStr[]={
    "success",
    "error 1",
    "error 2",
    "error 3",
    "error 4"
};
void test2()
{
    for(int i=0;i<200;i++)
    {
        printf("%d:%s\n",i,strerror(i));
    }
}
void test3()
{
    char*ch=(char*)malloc(1024*1024*1024*1024);
    if(ch==NULL)
    {
        int ret=errno;
        printf("%d:%s\n",ret,strerror(ret));
    }
    else{
        printf("malloc success\n");
    }
}
int main()
{
    //test1();
    //test2();
    test3();
    return 0;
}
